Memory arbitration system and method having an arbitration packet protocol

ABSTRACT

A memory hub and method for transmitting a read response on a data path of a memory hub interposed between a transmitting memory hub and a receiving memory hub. An arbitration packet including data indicative of a data path configuration for an associated read response is received at the memory hub. The arbitration packet is decoded, and the data path is configured in accordance with the data of the arbitration packet. The associated read response is received at the memory hub and the associated read response is coupled to the configured data path for transmitting the same to the receiving memory hub.

TECHNICAL FIELD

This present invention is related generally to a memory system for aprocessor-based computing system, and more particularly, to a hub-basedmemory system having an arbitration system and method for managingmemory responses therein.

BACKGROUND OF THE INVENTION

Computer systems use memory devices, such as dynamic random accessmemory (“DRAM”) devices, to store data that are accessed by a processor.These memory devices are normally used as system memory in a computersystem. In a typical computer system, the processor communicates withthe system memory through a processor bus and a memory controller. Thememory devices of the system memory, typically arranged in memorymodules having multiple memory devices, are coupled through a memory busto the memory controller. The processor issues a memory request, whichincludes a memory command, such as a read command, and an addressdesignating the location from which data or instructions are to be read.The memory controller uses the command and address to generateappropriate command signals as well as row and column addresses, whichare applied to the system memory through the memory bus. In response tothe commands and addresses, data are transferred between the systemmemory and the processor. The memory controller is often part of asystem controller, which also includes bus bridge circuitry for couplingthe processor bus to an expansion bus, such as a PCI bus.

In memory systems, high data bandwidth is desirable. Generally,bandwidth limitations are not related to the memory controllers sincethe memory controllers sequence data to and from the system memory asfast as the memory devices allow. One approach that has been taken toincrease bandwidth is to increase the speed of the memory data buscoupling the memory controller to the memory devices. Thus, the sameamount of information can be moved over the memory data bus in lesstime. However, despite increasing memory data bus speeds, acorresponding increase in bandwidth does not result. One reason for thenon-linear relationship between data bus speed and bandwidth is thehardware limitations within the memory devices themselves. That is, thememory controller has to schedule all memory commands to the memorydevices such that the hardware limitations are honored. Although thesehardware limitations can be reduced to some degree through the design ofthe memory device, a compromise must be made because reducing thehardware limitations typically adds cost, power, and/or size to thememory devices, all of which are undesirable alternatives. Thus, giventhese constraints, although it is easy for memory devices to move“well-behaved” traffic at ever increasing rates, for example, sequeltraffic to the same page of a memory device, it is much more difficultfor the memory devices to resolve “badly-behaved traffic,” such asbouncing between different pages or banks of the memory device. As aresult, the increase in memory data bus bandwidth does not yield acorresponding increase in information bandwidth.

In addition to the limited bandwidth between processors and memorydevices, the performance of computer systems is also limited by latencyproblems that increase the time required to read data from system memorydevices. More specifically, when a memory device read command is coupledto a system memory device, such as a synchronous DRAM (“SDRAM”) device,the read data are output from the SDRAM device only after a delay ofseveral clock periods. Therefore, although SDRAM devices cansynchronously output burst data at a high data rate, the delay ininitially providing the data can significantly slow the operating speedof a computer system using such SDRAM devices. Increasing the memorydata bus speed can be used to help alleviate the latency issue. However,as with bandwidth, the increase in memory data bus speeds do not yield alinear reduction of latency, for essentially the same reasons previouslydiscussed.

Although increasing memory data bus speed has, to some degree, beensuccessful in increasing bandwidth and reducing latency, other issuesare raised by this approach. For example, as the speed of the memorydata bus increases, loading on the memory bus needs to be decreased inorder to maintain signal integrity since traditionally, there has onlybeen wire between the memory controller and the memory slots into whichthe memory modules are plugged. Several approaches have been taken toaccommodate the increase in memory data bus speed. For example, reducingthe number of memory slots, adding buffer circuits on a memory module inorder to provide sufficient fanout of control signals to the memorydevices on the memory module, and providing multiple memory deviceinterfaces on the memory module since there are too few memory moduleconnectors on a single memory device interface. The effectiveness ofthese conventional approaches are, however, limited. A reason why thesetechniques were used in the past is that it was cost-effective to do so.However, when only one memory module can be plugged in per interface, itbecomes too costly to add a separate memory interface for each requiredmemory slot. In other words, it pushes the system controllers packageout of the commodity range and into the boutique range, thereby, greatlyadding cost.

One recent approach that allows for increased memory data bus speed in acost effective manner is the use of multiple memory devices coupled tothe processor through a memory hub. In a memory hub architecture, or ahub-based memory sub-system, a system controller or memory controller iscoupled over a high speed bi-directional or unidirectional memorycontroller/hub interface to several memory modules. Typically, thememory modules are coupled in a point-to-point or daisy chainarchitecture such that the memory modules are connected one to anotherin series. Thus, the memory controller is coupled to a first memorymodule, with the first memory module connected to a second memorymodule, and the second memory module coupled to a third memory module,and so on in a daisy chain fashion.

Each memory module includes a memory hub that is coupled to the memorycontroller/hub interface and a number of memory devices on the module,with the memory hubs efficiently routing memory requests and responsesbetween the controller and the memory devices over the memorycontroller/hub interface. Computer systems employing this architecturecan use a high-speed memory data bus since signal integrity can bemaintained on the memory data bus. Moreover, this architecture alsoprovides for easy expansion of the system memory without concern fordegradation in signal quality as more memory modules are added, such asoccurs in conventional memory bus architectures.

Although computer systems using memory hubs can provide superiorperformance, various factors may affect the performance of the memorysystem. For example, the manner in which the flow of read data upstream(i.e., back to the memory hub controller in the computer system) fromone memory hub to another is managed will affect read latency. Themanagement of the flow of read data by a memory hub may be generallyreferred to as arbitration, with each memory hub arbitrating betweenlocal memory read responses and upstream memory read responses. That is,each memory hub determines whether to send local memory read responsesfirst or to forward memory read responses from downstream (i.e., furtheraway from the memory hub controller) memory hubs first. Although thedetermination of which memory read response has lower priority will onlyaffect the latency of that specific memory read response, the additiveeffect of the memory read responses having increased latency will affectthe overall latency of the memory system. Consequently, the arbitrationtechnique employed by a memory hub directly affects the performance ofthe overall memory system. Additionally, the implementation of thearbitration scheme will affect the overall read latency as well, sinceinefficient implementation will negatively impact system memoryperformance despite utilizing a desirable arbitration scheme. Therefore,there is a need for a system and method for implementing an arbitrationscheme for managing memory responses in a system memory having a memoryhub architecture.

SUMMARY OF THE INVENTION

A method according to one aspect of the invention includes transmittinga read response on a data path of a memory hub interposed between atransmitting memory hub and a receiving memory hub. The method includesreceiving at the memory hub an arbitration packet including dataindicative of a data path configuration for an associated read response.The arbitration packet is decoded, and the data path is configured inaccordance with the data of the arbitration packet. The associated readresponse is received at the memory hub and the associated read responseis coupled to the configured data path for transmitting the same to thereceiving memory hub.

In another aspect of the invention, a memory hub coupled to at least onememory device is provided. The memory hub includes remote and localinput nodes, an output node, and a configurable data path coupled to theremote and local input nodes and further coupled to the output node. Thememory hub further includes an arbitration control circuit coupled tothe configurable data path, the output node, and the remote input node.The arbitration control circuit generates an arbitration packet for anassociated read response coupled through the local input node thatincludes data indicative of a data path configuration for the associatedread response. The arbitration control circuit can further configure theconfigurable data path in accordance with the data included with anarbitration packet coupled thorough the remote input node in preparationof coupling an associated read response coupled through the remote inputnode to the output node.

In another aspect of the invention, a memory hub is provided having abypass data path coupled between an input node and an output node onwhich read responses are coupled in response to being enabled, andfurther includes an arbitration control circuit. The arbitration controlcircuit is coupled to the bypass data path and generates an arbitrationpacket in response to retrieving read data from a memory device coupledto the memory hub. The arbitration packet has a data path fieldincluding activation data to enable a bypass data path of an upstreammemory hub. The arbitration control circuit also receives an arbitrationpacket from a downstream memory hub and enables the bypass data path tocouple a read response also received from the downstream memory hub fromthe input node to the output node.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a partial block diagram of a computer system having a memoryhub based system memory in which embodiments of the present inventioncan be implemented.

FIG. 2 is a functional block diagram of a arbitration control componentaccording to an embodiment of the present invention that can be utilizedin the memory hubs of FIG. 1.

FIG. 3 is a data structure diagram of a arbitration packet and memoryresponse according to an embodiment of the present invention.

FIG. 4 is a flow diagram of the operation of the arbitration controlcomponent of FIG. 3 according to an embodiment of the present invention

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

FIG. 4 illustrates a computer system 100 having a memory hubarchitecture in which embodiments of the present invention can beutilized. The computer system 100 includes a processor 104 forperforming various computing functions, such as executing specificsoftware to perform specific calculations or tasks. The processor 104includes a processor bus 106 that normally includes an address bus, acontrol bus, and a data bus. The processor bus 106 is typically coupledto cache memory 108, which, is typically static random access memory(“SRAM”). The processor bus 106 is further coupled to a systemcontroller 110, which is also referred to as a bus bridge.

The system controller 110 also serves as a communications path to theprocessor 104 for a variety of other components. More specifically, thesystem controller 110 includes a graphics port that is typically coupledto a graphics controller 112, which is, in turn, coupled to a videoterminal 114. The system controller 110 is also coupled to one or moreinput devices 118, such as a keyboard or a mouse, to allow an operatorto interface with the computer system 100. Typically, the computersystem 100 also includes one or more output devices 120, such as aprinter, coupled to the processor 104 through the system controller 110.One or more data storage devices 124 are also typically coupled to theprocessor 104 through the system controller 110 to allow the processor104 to store data or retrieve data from internal or external storagemedia (not shown). Examples of typical storage devices 124 include hardand floppy disks, tape cassettes, and compact disk read-only memories(CD-ROMs).

The system controller 110 contains a memory hub controller 128 coupledto several memory modules 130 a-n through a bus system 154, 156. Each ofthe memory modules 130 a-n includes a memory hub 140 coupled to severalmemory devices 148 through command, address and data buses, collectivelyshown as bus 150. The memory hub 140 efficiently routes memory requestsand responses between the controller 128 and the memory devices 148.Each of the memory hubs 140 includes write buffers and read databuffers. Computer systems employing this architecture allow for theprocessor 104 to access one memory module 130 a-n while another memorymodule 130 a-n is responding to a prior memory request. For example, theprocessor 104 can output write data to one of the memory modules 130 a-nin the system while another memory module 130 a-n in the system ispreparing to provide read data to the processor 104. Additionally, amemory hub architecture can also provide greatly increased memorycapacity in computer systems.

FIG. 2 is a functional block diagram illustrating an arbitration controlcomponent 200 according to one embodiment of the present invention. Thearbitration control component 200 can be included in the memory hubs 140of FIG. 1. As shown in FIG. 2, the arbitration control component 200includes two queues for storing associated memory responses. A localresponse queue 202 receives and stores local memory responses LMR fromthe memory devices 148 on the associated memory module 130. A remoteresponse queue 206 receives and stores downstream memory responses whichcannot be immediately forwarded upstream through a bypass path 204. Anarbitration control circuit 210 is coupled to the queues 202, 206through a control/status bus 136, which allows the arbitration controlcircuit 210 to monitor the contents of each of the queues 202, 206, andutilizes this information in controlling a multiplexer 208 to therebycontrol the overall arbitration process executed by the memory hub 140.The control/status bus 136 also allows “handshaking” signals to becoupled from the queues 202, 206 to the arbitration control circuit 210to coordinate the transfer of control signals from the arbitrationcontrol circuit 210 to the queues 202, 206.

The arbitration control circuit 210 is further coupled to the high-speedlink 134 to receive arbitration packets from downstream memory hubs. Aswill be explained in more detail below, arbitration packets are providedin advance of an associated memory response, and provide the arbitrationcontrol circuit 210 of an upstream memory hub with information to enablethe appropriate path through the receiving memory hub in anticipation ofreceiving the associated memory response. Additionally, the arbitrationcontrol circuit 210 generates an arbitration packet to be provided priorto an associated LMR to serve as an early indication of the associatedmemory response when data is read from the memory devices 148 (FIG. 1)in response to a read request. As previously discussed, the arbitrationpacket will provide upstream memory hubs with appropriate informationand give the respective arbitration control circuits 210 time to makedecisions regarding enablement of the appropriate data paths before thememory response arrives. The arbitration control circuit 210 preparesthe arbitration packet while read data for the memory response is beingretrieved from memory devices 148. The arbitration packet is providedthrough a switch 212 to either the multiplexer 208 or the local responsequeue 202, depending on whether if the upstream memory hub is idle orbusy. The multiplexer 208, under the control of the arbitration controlcircuit, couples the high-speed link 134 to receive memory responsesfrom the remote response queue 206 or the bypass path 204, arbitrationpackets from the arbitration control circuit 210, or arbitration packetsand memory responses from the local response queue 202. For example, thenumber and type of data fields of the data structure 300 can be changedor the number of bits for each bit time can be changed and still remainwithin the scope of the present invention. In an alternative embodimentof the present invention, the arbitration packets are generated in anarbitration packet circuit, rather than in the arbitration controlcircuit 210, as shown in FIG. 2. Additionally, although shown in FIG. 2as providing the arbitration packet to the multiplexer 208 to beinjected into the stream of data, the arbitration packet canalternatively be provided to the local response queue 202 and placedbefore the associated read response packet to be injected into the datastream. It will be appreciated by those ordinarily skilled in the artthat modifications to the embodiments of the present invention, such asthe location at which the arbitration packet is generated or the mannerin which the arbitration packet is placed into the data stream prior tothe associated read packet, can be made without departing from the scopeof the present invention.

FIG. 3 illustrates a data structure 300 for arbitration packets andmemory responses according to an embodiment of the present invention.The data structure 300 is divided into 8-bit bytes of information, witheach byte of information corresponding to a sequential bit-time. Eachbit-time represents an increment of time in which new data can beprovided. A response header field 302 includes two bytes of data thatindicate the response is either an arbitration packet or a memoryresponse. An address field 304 includes data that is used to identifythe particular hub to which the arbitration packet or memory response isdirected. A command code field 306 will have a value to identify thedata structure 300 as an arbitration packet, and not as a memoryresponse. Arbitration packets and memory responses are similar, exceptthat the data payload of data fields 308 are “don't cares” forarbitration packets. In the data structure 300, all 16 bits of sizefields 310 carry the same value to indicate the size of the data payloadcarried by the memory response. For example, a “0” indicates that 32bytes of data are included, and a “1” indicates that 64 bytes of dataare included. It will be appreciated by one ordinarily skilled in theart that the embodiment of the data structure 300 shown in FIG. 3 hasbeen provided by way of example, and that modifications to the datastructure 300 can be made without deviating from the scope of thepresent invention.

Operation of the arbitration control component 200 (FIG. 2) will bedescribed with reference to the flow diagram of FIG. 4. Following thereceipt of a read data command, at a step 402 the memory hub initiates aread operation to retrieve the requested read data from the memorydevices 148 (FIG. 1) for the memory response that will be provided tothe requesting target. At a step 404, the arbitration control circuit210 of the memory hub determines whether the local data path is idle bychecking the status of the local response queue 202. If the local datapath is idle, an arbitration packet is generated by the arbitrationscontrol circuit 210 during the retrieval of the read data from thememory devices 148 at a step 406. When the arbitration packet and thememory response have been prepared, and are ready for transmission, at astep 408 an upstream memory hub is queried to determine if it is busy.Where the upstream memory hub is idle, the arbitration packet is sent tothe upstream memory hub, followed by the memory response at steps 410,412. However, if the upstream memory hub is busy, the arbitration packetis discarded at a step 414 and the memory response is stored in a localresponse queue 202 at a step 416. Similarly, in the event that at thestep 404 it was determined that the local data path is busy, the memoryresponse is also stored in the local response queue at the step 416. Ata step 418 the memory response is stored in the local response queue 202until it is selected for transmission to the upstream memory hub inaccordance with an arbitration scheme implemented by the memory hub. Ata step 420, the memory response is transmitted through each upstreammemory hub in accordance with the arbitration scheme until the memoryresponse reaches the target destination. Suitable arbitration schemesare well known in the art, and will not be described in detail herein.An example of an arbitration scheme that is also suitable for use isdescribed in more detail in commonly assigned, co-pending U.S. patentapplication Ser. No. 10/690,810, entitled ARBITRATION SYSTEM AND METHODFOR MEMORY RESPONSES IN A HUB-BASED MEMORY SYSTEM to James W. Meyer andCory Kanski, filed on Oct. 20, 2003, which is incorporated herein byreference.

As described therein, the local and remote response queues 202, 206 andthe bypass path 204 are utilized to implement various responsearbitration schemes. For example, in one embodiment, the arbitrationcontrol circuit executes an arbitration scheme that gives downstreamresponses, or remote responses, priority over local responses.Alternatively, in another embodiment described, the arbitration controlcircuit executes an arbitration scheme that gives priority to localresponses over downstream responses. In another embodiment, thearbitration control circuit alternates between a predetermined number ofresponses from local and downstream memory, for example, local andremote responses can be alternately forwarded, or two local responsesare forwarded followed by two remote responses, and so on. Anotherembodiment described therein utilizes an oldest first algorithm inarbitrating between local and downstream memory responses. That is, inoperation, the arbitration control circuit 210 monitors responseidentifier portions of the memory responses stored in the local responsequeue and the remote response queue and selects the oldest responsecontained in either of these queues as the next response to be forwardedupstream. Thus, independent of the response queue in which a memoryresponse is stored, the arbitration control circuit forwards the oldestresponses first.

It will be appreciated by those ordinarily skilled in the art that otherarbitration methods and schemes can be utilized without departing fromthe scope of the present invention.

Returning to the steps 410, 412 where the arbitration packet is firsttransmitted to an upstream memory hub and then followed by the memoryresponse, the arbitration control circuit 210 of the upstream memory hubreceives the arbitration packet at a step 422. The arbitration packet isdecoded, and the appropriate data path is enabled by the arbitrationcontrol circuit 210 based on the information decoded at steps 424, 426.By the time the memory response is received at a step 430, theappropriate data path is enabled by the arbitration control circuit 210.At a step 428, the next upstream memory hub is queried to determine ifit is busy. If not, the arbitration packet and then the memory responseare transmitted to the next upstream memory hub in a bypass fashion at astep 432. The transmission of the arbitration packet and the memoryresponse in the bypass fashion is facilitated by enabling theappropriate data path through the memory hub based on the decodedinformation of the arbitration packet that is sent at the step 410before the associated memory response is sent at the step 412.

Returning to the step 428, if it is determined that the next upstreammemory hub is busy, the arbitration packet is discarded at the step 440,and the memory response is stored in the remote response queue 206 untilthe memory response is selected for transmission to the next upstreammemory hub according to the arbitration scheme employed at a step 442.At the step 420, the memory response will make its way upstream throughthe memory hubs in accordance with the arbitration scheme until reachingits target destination.

From the foregoing it will be appreciated that, although specificembodiments of the invention have been described herein for purposes ofillustration, various modifications may be made without deviating fromthe spirit and scope of the invention. For example, embodiments of thepresent invention have been described herein with respect to a memoryhub-based system memory used in a computer system. However, it will beappreciated that embodiments of the present invention can be used inmemory systems other than hub-based memory systems, where appropriate.Moreover, embodiments of the present invention can also be used inmemory hub-based systems that are utilized in processor based systems,as known in the art, other than computer systems. Accordingly, theinvention is not limited except as by the appended claims.

1. A method of responding to a read request in a system memory having aresponding memory hub and at least one interposing memory hub throughwhich a read response is transmitted on a data path of the interposingmemory hub, the method comprising: retrieving read data from a memorydevice coupled to the responding memory hub and preparing a readresponse including the read data; generating an arbitration packetincluding data indicative of a data path configuration for the readresponse; providing the arbitration packet and the read response to theinterposing memory hub, the arbitration packet provided prior to theread response; and receiving the arbitration packet at the interposingmemory hub, decoding the data of the arbitration packet and enabling adata path for the read response in the interposing memory hub inaccordance with the data of the arbitration packet.
 2. The method ofclaim 1 wherein generating an arbitration packet comprises generatingdata for the arbitration packet that is used to distinguish thearbitration packet from a read response.
 3. The method of claim 1wherein generating an arbitration packet comprising generating aplurality of 8-bit bytes, the plurality of 8-bit bytes including onebyte including data used by the interposing memory hub to distinguishthe arbitration packet from a read response.
 4. The method of claim 1wherein enabling the data path for the read response comprises enablinga bypass data path in the interposing memory hub to couple thearbitration packet and read response through the interposing memory hub.5. The method of claim 1, further comprising: determining whether theinterposing memory hub is busy; and in the event that the interposingmemory hub is not busy, generating the arbitration packet for provisionto the interposing memory hub prior to providing the associated readresponse to the interposing memory hub.
 6. The method of claim 1,further comprising: determining whether a local data path of theresponding memory hub is idle; in the event that the local data path isidle, generating the arbitration packet for provision to the interposingmemory hub prior to providing the associated read response to theinterposing memory hub.
 7. The method of claim 1 wherein generating thearbitration packet comprises generating an arbitration packet includingdata indicative of enabling a bypass data path in the interposing memoryhub for coupling the arbitration packet and read response through theinterposing memory hub.
 8. A method of transmitting a read response on adata path of a memory hub interposed between a transmitting memory huband a receiving memory hub, the method comprising: receiving at thememory hub an arbitration packet including data indicative of a datapath configuration for an associated read response; decoding thearbitration packet; configuring the data path in accordance with thedata of the arbitration packet; receiving the associated read responseat the memory hub; and coupling the associated read response to theconfigured data path for transmitting the same to the receiving memoryhub.
 9. The method of claim 8 wherein configuring the data pathcomprises enabling a bypass data path in the memory hub to couple thearbitration packet and read response through the memory hub to thereceiving memory hub.
 10. The method of claim 8, further comprisingcoupling the arbitration packet to the configured data path fortransmitting the same to the receiving memory hub prior to transmittingthe associated read response.
 11. The method of claim 8, furthercomprising receiving a query from the transmitting hub whether thememory hub is busy and responding to the query by indicating to thetransmitting hub that the memory hub is not busy.
 12. A method ofconfiguring a data path of a memory hub through which a read response isprovided, the method comprising: generating at a first memory hub anarbitration packet including data indicative of a data pathconfiguration for an associated read response; providing the arbitrationpacket to a second memory hub coupled to the first memory hub; decodingthe arbitration packet at the second memory hub; and configuring a datapath of the second memory hub in accordance with the data of thearbitration packet in preparation of receiving the associated readresponse.
 13. The method of claim 12 wherein generating an arbitrationpacket comprises generating data for the arbitration packet that is usedto distinguish the arbitration packet from a read response.
 14. Themethod of claim 12 wherein configuring the data path comprises enablinga bypass data path in the second memory hub to couple the arbitrationpacket and read response through the second memory hub.
 15. The methodof claim 12, further comprising: determining whether the second memoryhub is busy; and in the event that the second memory hub is not busy,providing the arbitration packet to the second memory hub prior toproviding the associated read response to the second memory hub.
 16. Themethod of claim 12, further comprising: determining whether a local datapath is idle; in the event that the local data path is idle, generatingthe arbitration packet for provision to the second memory hub prior toproviding the associated read response to the second memory hub.
 17. Themethod of claim 12 wherein generating the arbitration packet comprisesgenerating an arbitration packet including data indicative of enabling abypass data path in the second memory hub for coupling the arbitrationpacket and read response through the second memory hub.
 18. A method ofcommunicating between a first and second memory hub for configuring adata path in the second memory hub, the method comprising: generating anarbitration packet for an associated read response to be coupled throughthe second memory hub, the arbitration packet having a command codefield including data identifying that it is an arbitration packet andfurther having a data path field including data indicative of a datapath configuration in the second memory hub; transmitting thearbitration packet prior to transmitting the associated read response tothe second memory hub; and configuring the data path in the secondmemory hub in accordance with the data included in the data path field.19. The method of claim 18 wherein configuring the data path comprisesenabling a bypass data path in the second memory hub to couple thearbitration packet and the associated read response through the secondmemory hub.
 20. The method of claim 18, further comprising: determiningwhether the second memory hub is busy; and in the event that the secondmemory hub is not busy, generating the arbitration packet for provisionto the second memory hub prior to providing the associated read responseto the second memory hub.
 21. The method of claim 19, furthercomprising: determining whether a local data path is idle; in the eventthat the local data path is idle, generating the arbitration packet forprovision to the second memory hub prior to providing the associatedread response to the second memory hub.
 22. A memory hub coupled to atleast one memory device, the memory hub comprising: remote and localinput nodes; an output node; a configurable data path coupled to theremote and local input nodes and further coupled to the output node, theconfigurable data path operable to couple at least one of a readresponse coupled through the remote and local input nodes to the outputnode; and an arbitration control circuit coupled to the configurabledata path, the output node, and the remote input node, the arbitrationcontrol circuit operable to generate an arbitration packet for anassociated read response coupled through the local input node, thearbitration packet including data indicative of a data pathconfiguration for the associated read response, the arbitration controlcircuit further operable to configure the configurable data path inaccordance with the data included with an arbitration packet coupledthorough the remote input node in preparation of coupling an associatedread response coupled through the remote input node to the output node.23. The memory hub of claim 22 wherein the configurable data pathcomprises: a multiplexer having an output coupled to the output node anda control node coupled to the arbitration control circuit; a bypass datapath coupled to the remote input node and a first input of themultiplexer; a local queue having an input coupled to the local inputnode and further having an output coupled to a second input of themultiplexer; and a remote queue having an input coupled to the remoteinput node and further having an output coupled to a third input of themultiplexer, the arbitration control circuit operable to generate acontrol signal for the multiplexer to selectively couple the bypass datapath, local queue, or remote queue to the output node.
 24. The memoryhub of claim 22 wherein the arbitration control logic is furtheroperable to generate data for the arbitration packet that is used todistinguish the arbitration packet from an associated read response. 25.A memory hub, comprising: a bypass data path coupled between an inputnode and an output node on which read responses are coupled therebetweenin response to being enabled; and an arbitration control circuit coupledto the bypass data path operable to generate an arbitration packet inresponse to retrieving read data from a memory device coupled to thememory hub, the arbitration packet having a data path field includingactivation data to enable a bypass data path of an upstream memory hub,the arbitration control circuit further operable to receive anarbitration packet from a downstream memory hub and enable the bypassdata path to couple a read response received therefrom from the inputnode to the output node.
 26. The memory hub of claim 25, furthercomprising: a multiplexer having an output coupled to the output nodeand a control node coupled to the arbitration control circuit, themultiplexer further having a first input coupled to the bypass datapath; a local queue having an input coupled to a local input node andfurther having an output coupled to a second input of the multiplexer;and a remote queue having an input coupled to the input node and furtherhaving an output coupled to a third input of the multiplexer, thearbitration control circuit operable to generate a control signal forthe multiplexer to selectively couple the bypass data path, local queue,or remote queue to the output node.
 27. A memory module, comprising: aplurality of memory devices; and a memory hub coupled to the memorydevices through a memory device bus to access the memory devices, thememory hub comprising: remote and local input nodes, the local inputnode coupled to the memory device bus; an output node; a configurabledata path coupled to the remote and local input nodes and furthercoupled to the output node, the configurable data path operable tocouple at least one of a read response coupled through the remote andlocal input nodes to the output node; and an arbitration control circuitcoupled to the configurable data path, the output node, and the remoteinput node, the arbitration control circuit operable to generate anarbitration packet for an associated read response coupled through thelocal input node, the arbitration packet including data indicative of adata path configuration for the associated read response, thearbitration control circuit further operable to configure theconfigurable data path in accordance with the data included with anarbitration packet coupled thorough the remote input node in preparationof coupling an associated read response coupled through the remote inputnode to the output node.
 28. The memory module of claim 27 wherein theconfigurable data path of the memory hub comprises: a multiplexer havingan output coupled to the output node and a control node coupled to thearbitration control circuit; a bypass data path coupled to the remoteinput node and a first input of the multiplexer; a local queue having aninput coupled to the local input node and further having an outputcoupled to a second input of the multiplexer; and a remote queue havingan input coupled to the remote input node and further having an outputcoupled to a third input of the multiplexer, the arbitration controlcircuit operable to generate a control signal for the multiplexer toselectively couple the bypass data path, local queue, or remote queue tothe output node.
 29. The memory module of claim 27 wherein thearbitration control logic of the memory hub is further operable togenerate data for the arbitration packet that is used to distinguish thearbitration packet from an associated read response.
 30. A memorymodule, comprising: a plurality of memory devices; and a memory hubcoupled to the memory devices through a memory device bus to access thememory devices, the memory hub comprising: a bypass data path coupledbetween an input node and an output node on which read responses arecoupled therebetween in response to being enabled; and an arbitrationcontrol circuit coupled to the bypass data path operable to generate anarbitration packet in response to retrieving read data from a memorydevice coupled to the memory hub, the arbitration packet having a datapath field including activation data to enable a bypass data path of anupstream memory hub, the arbitration control circuit further operable toreceive an arbitration packet from a downstream memory hub and enablethe bypass data path to couple a read response received therefrom fromthe input node to the output node.
 31. The memory module of claim 30wherein the memory hub further comprises: a multiplexer having an outputcoupled to the output node and a control node coupled to the arbitrationcontrol circuit, the multiplexer further having a first input coupled tothe bypass data path; a local queue having an input coupled to a localinput node and further having an output coupled to a second input of themultiplexer; and a remote queue having an input coupled to the inputnode and further having an output coupled to a third input of themultiplexer, the arbitration control circuit operable to generate acontrol signal for the multiplexer to selectively couple the bypass datapath, local queue, or remote queue to the output node.
 32. Aprocessor-based system, comprising: a processor having a processor bus;a system controller coupled to the processor bus, the system controllerhaving a peripheral device port, the system controller furthercomprising a controller coupled to a system memory port; at least oneinput device coupled to the peripheral device port of the systemcontroller; at least one output device coupled to the peripheral deviceport of the system controller; at least one data storage device coupledto the peripheral device port of the system controller; a memory buscoupled to the system controller for transmitting memory requests andresponses thereon; and a plurality of memory modules coupled to thememory bus, each of the modules having: a plurality of memory devices;and a memory hub coupled to the memory devices through a memory devicebus to access the memory devices, the memory hub comprising: remote andlocal input nodes, the local input node coupled to the memory devicebus; an output node; a configurable data path coupled to the remote andlocal input nodes and further coupled to the output node, theconfigurable data path operable to couple at least one of a readresponse coupled through the remote and local input nodes to the outputnode; and an arbitration control circuit coupled to the configurabledata path, the output node, and the remote input node, the arbitrationcontrol circuit operable to generate an arbitration packet for anassociated read response coupled through the local input node, thearbitration packet including data indicative of a data pathconfiguration for the associated read response, the arbitration controlcircuit further operable to configure the configurable data path inaccordance with the data included with an arbitration packet coupledthorough the remote input node in preparation of coupling an associatedread response coupled through the remote input node to the output node.33. The processor-based system of claim 32 wherein the configurable datapath of the memory hub comprises: a multiplexer having an output coupledto the output node and a control node coupled to the arbitration controlcircuit; a bypass data path coupled to the remote input node and a firstinput of the multiplexer; a local queue having an input coupled to thelocal input node and further having an output coupled to a second inputof the multiplexer; and a remote queue having an input coupled to theremote input node and further having an output coupled to a third inputof the multiplexer, the arbitration control circuit operable to generatea control signal for the multiplexer to selectively couple the bypassdata path, local queue, or remote queue to the output node.
 34. Theprocessor-based system of claim 32 wherein the arbitration control logicof the memory hub is further operable to generate data for thearbitration packet that is used to distinguish the arbitration packetfrom an associated read response.
 35. A processor-based system,comprising: a processor having a processor bus; a system controllercoupled to the processor bus, the system controller having a peripheraldevice port, the system controller further comprising a controllercoupled to a system memory port; at least one input device coupled tothe peripheral device port of the system controller; at least one outputdevice coupled to the peripheral device port of the system controller;at least one data storage device coupled to the peripheral device portof the system controller; a memory bus coupled to the system controllerfor transmitting memory requests and responses thereon; and a pluralityof memory modules coupled to the memory bus, each of the modules having:a plurality of memory devices; and a memory hub coupled to the memorydevices through a memory device bus to access the memory devices, thememory hub comprising: a bypass data path coupled between an input nodeand an output node on which read responses are coupled therebetween inresponse to being enabled; and an arbitration control circuit coupled tothe bypass data path operable to generate an arbitration packet inresponse to retrieving read data from a memory device coupled to thememory hub, the arbitration packet having a data path field includingactivation data to enable a bypass data path of an upstream memory hub,the arbitration control circuit further operable to receive anarbitration packet from a downstream memory hub and enable the bypassdata path to couple a read response received therefrom from the inputnode to the output node.
 36. The processor-based system of claim 35wherein the memory hub further comprises: a multiplexer having an outputcoupled to the output node and a control node coupled to the arbitrationcontrol circuit, the multiplexer further having a first input coupled tothe bypass data path; a local queue having an input coupled to a localinput node and further having an output coupled to a second input of themultiplexer; and a remote queue having an input coupled to the inputnode and further having an output coupled to a third input of themultiplexer, the arbitration control circuit operable to generate acontrol signal for the multiplexer to selectively couple the bypass datapath, local queue, or remote queue to the output node.